GradleでScalaプロジェクトをビルドする的な
概要
build.gradleでScalaのプログラムをビルドするってのを
ちゃんと小さくまとめてなかったので小さくまとめる。
フォルダ構成
本当はGradle標準にあわせたいんだけど、
万が一的な意味でEclipseで触ったりすることを考えてこんな形にしちゃう。
フォルダ階層をEclipseのデフォルトに合わせる。
この時点でsrc、testフォルダは空。build.gradleは白紙。
なにはともあれWrapper
自分はTextMate x Gradleな感じなので、
TextMateのGradleプラグイン使うためにまずgradleWrapperを作ってしまう。
以下はずっとbuild.gradleファイルに追記。
apply plugin:"scala"
version = 1.0
task wrapper(type: Wrapper) {
gradleVersion = version
}
この状態で、gradle wrapper をTerminalとかでやると、
gradlew.shとかexeが作られて、Gradle入ってない人でも楽に拉致できるようになる。
終わると、フォルダがこんな感じになってる。
srcフォルダの場所を書く
srcフォルダの場所とtestフォルダの場所が、通常のGradleとは違っているので、
書き加える。
sourceSets {
main {
scala {
srcDir 'src'
}
}
test {
scala {
srcDir 'test'
}
}
}
Dependenciesを書き加える
Scalaのビルドを通すために、依存を書く。
repositories {
mavenCentral()
}
dependencies {
scalaTools (
[group: "org.scala-lang", name: "scala-compiler",version: "2.9.2"],
[group: "org.scala-lang", name: "scala-library",version: "2.9.2"]
)
compile (
[group: "org.scala-lang", name: "scala-library",version: "2.9.2"]
)
}
これで、Scalaのコードをsrc内とかtest内に書けば、ビルドできる。
ビルド対象のHello.scala書く
srcフォルダ下にファイル追加
Hello.scala
object Hello {
def main(args: Array[String]) {
println("necomimi-mode--!!!")
}
}
趣向が凝らされた至高の文章。
このときのbuild.gradleの全体像
わざわざ { } 使って書くこと無いけど、今回は時間ないし眠いので。
コンパイル
Terminalから、
gradle compileScala
ってやっても良いし、TextMateから
⌘+shift+G
compileScala
ってやってもいい。
Terminalからだと、
TextMateからだと、
こんな風に表示される。
(実際先にTextMateのほう動かしてしまったのでTerminalの方はもう最新でした的な表示が出てる)
buildフォルダが作られて、classとか出来てる。
testフォルダにテストとか書けば、gradle test から実行できる。
プロジェクト一式
https://github.com/sassembla/SampleScalaGradle
書いてる間に渋谷から横浜に着いた!
駆動方法
cloneしてから、Terminal で、
gradlew compileScala
とかすると、ネットにつながっててJavaが動きさえすれば、動くと思う。